package ejemplo_1.negocio;

import java.util.ArrayList;
import java.util.Iterator;

import ejemplo_1.bean.AlumnoVO;
import ejemplo_1.bean.CursoVO;
import ejemplo_1.bean.MateriaVO;
import ejemplo_1.bean.ProfesorVO;

public class Curso {
	
	private int numeroCurso;
	private Materia materia;
	private Profesor profesor;
	private ArrayList<Alumno> alumnos;
	private int cantMaxima;
	
	//Constructor
	public Curso(int numeroCurso, Materia materia, Profesor profesor, int cantMaxima) {
		super();
		this.numeroCurso = numeroCurso;
		this.materia = materia;
		this.profesor = profesor;
		this.cantMaxima = cantMaxima;
	}

	public Curso() {
	}

	//GET & SET
	public Materia getMateria() {
		return materia;
	}

	public void setMateria(Materia materia) {
		this.materia = materia;
	}

	public Profesor getProfesor() {
		return profesor;
	}

	public void setProfesor(Profesor profesor) {
		this.profesor = profesor;
	}

	public ArrayList<Alumno> getAlumnos() {
		return alumnos;
	}

	public void setAlumnos(ArrayList<Alumno> alumnos) {
		this.alumnos = alumnos;
	}

	public int getCantMaxima() {
		return cantMaxima;
	}

	public void setCantMaxima(int cantMaxima) {
		this.cantMaxima = cantMaxima;
	}

	public int getNumeroCurso() {
		return numeroCurso;
	}
	
	//NEGOCIO
	public void AgregarAlumno(Alumno a){
		
	}
	
	public void EliminarAlumno(Alumno a){
		
	}
	
	public void ReasignarProfesor(Profesor p){
		
	}
	
	public ArrayList<Alumno> obtenerAlumnos(){
		return this.getAlumnos();
	}

	//NEGOCIO
	public CursoVO toView() {
		CursoVO auxCursoVO = new CursoVO(this.getNumeroCurso(), this.getCantMaxima(), this.getMateria().toView(), this.getProfesor().toView());
		Alumno auxAlumno = new Alumno();
		AlumnoVO auxAlumnoVO = new AlumnoVO();
		for(Iterator<Alumno> i=this.getAlumnos().iterator();i.hasNext();)
		{
			auxAlumno = i.next();	
			auxAlumnoVO = auxAlumno.toView();
			auxCursoVO.getAlumnos().add(auxAlumnoVO);
		}
		return auxCursoVO;
	}
	
	public Curso toBusiness(CursoVO c) {
		Curso auxCurso = new Curso();
		auxCurso.setCantMaxima(c.getCantMaxima());
		Materia auxMat = new Materia();
		auxMat.toBusiness(c.getMateria());
		auxCurso.setMateria(auxMat);
		Profesor auxProf = new Profesor();
		auxProf.toBusiness(c.getProfesor());
		auxCurso.setProfesor(auxProf);
		Alumno auxAlumno = new Alumno();
		AlumnoVO auxAlumnoVO = new AlumnoVO();
		for(Iterator<AlumnoVO> i=c.getAlumnos().iterator();i.hasNext();)
		{
			auxAlumnoVO = i.next();	
			auxAlumno = auxAlumno.toBussines(auxAlumnoVO);
			auxCurso.getAlumnos().add(auxAlumno);
		}
		return auxCurso;
	}

}
